package LO3_;

public class dog_fz {
    // 创建一个dog类；狗的属性；public修饰可以在任何地方被访问
    public int age = 1;
    //（privat）只能在定义它们的类内部访问，不被外部直接修改
    private String name;

    public dog_fz(String name){
        this.name=name;
    }
    // 添加公共方法来获取name
    public String getName() {
        return this.name;
    }

    // 添加公共方法来设置name
    public void setName(String name) {
        this.name = name;
    }

    public void bark(){
        System.out.println("wangwangwang");
    }
    public static void main(String[] args) {
        // 创建一个狗对象
        dog_fz myDog = new dog_fz("旺财");

        //调用bark()方法
        System.out.println(myDog.age+"岁"+myDog.name);
        myDog.bark();

        dog2 myDog2 = new dog2();
        myDog2.testAccess();
    }
}

class dog2 {
    public void testAccess() {
        dog_fz myDog = new dog_fz("旺财");
        myDog.age = 2;
        System.out.println(myDog.age);

        myDog.setName("来财");
        //myDog.name = "来财";              // 报错name在dog_fz中是private访问控制
        //System.out.println(myDog.name);  // 报错name在dog_fz中是private访问控制
        System.out.println("新名字："+myDog.getName());
    }
}
 
//name被设为private可以在类内部访问和修改；不可在此类外部访问防止外部代码随意修改狗的名字属性；可以通过公共方法访问和修改私有属性
//封装可以把数据隐藏，只提供使用接口，避免操作不当带来的影响，保护数据隐私与安全

